package com.andreas.simplest;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeoutException;

import static com.andreas.utils.ConnectionUtils.getConnection;

/**
 * 描述：消息生产者
 */
public class Sender {
    public static void main(String[] args) throws IOException, TimeoutException {
        String msg = "周乾：Hello,RabbitMQ";
        // 1.获取连接
        Connection connection = getConnection();
        // 2. 获取信道
        Channel channel = connection.createChannel();
        // 3.创建队列
        /*
         * 1.队列的名字
         * 2.是否持久化
         * 3.是否对外暴露
         * 4.是否删除 - 是否自动删除
         * 5.队列参数（没有参数为null）
         * */
        channel.queueDeclare("queue1", false, false, false, null);
        // 4.向指定的队列发送消息
        /*
         * 1.参数1:交换机名称，当前是简单模式，也就是p2p模式，没有交换机，所以名称为“”
         * 2.参数2：目标队列名称
         * 3.参数3：设置消息的属性（没有属性则为null）
         * 4.参数4：消息的内容（只接收字节数据类型）
         * */
        channel.basicPublish("", "queue1", null, msg.getBytes(StandardCharsets.UTF_8));
        System.out.println("发送 = " + msg);
        channel.close();
        // 1. ready表示的是1，准备好，Unacked,表示的是未ack，total表示的是总共的
        connection.close();
    }
}
